package com.only4play.codegen.processor;

import javax.annotation.processing.RoundEnvironment;
import javax.lang.model.element.TypeElement;
import java.lang.annotation.Annotation;


public interface CodeGenProcessor {

  /**
   * 获取到需要生成代码的类上标注的所有注解
   */
  Class<? extends Annotation> getAnnotation();

  /**
   * 获取注解上指定的代码生成包路径
   * @return
   */
  String generatePackage(TypeElement typeElement);

  /**
   * 代码生成逻辑
   * @throws Exception 1
   */
  void generate(TypeElement typeElement, RoundEnvironment roundEnvironment) throws Exception;
}
